考前最后一套!蓝桥杯python组元年省赛真题

您所在的位置:网站首页 字典套字典 python 考前最后一套!蓝桥杯python组元年省赛真题

考前最后一套!蓝桥杯python组元年省赛真题

2023-04-18 14:57| 来源: 网络整理| 查看: 265

前言

今天就让我们轰轰烈烈的回忆,好像毕业季! 明天就上考场了,大家准备的怎么样,相应的模块复习了吗,基础知识掌握了吗,我给一张官方出题范围,大家看看能不能自己写一张思维导图出来,文章结尾我会放一张自己做的思维导图供大家回忆过程。

在这里插入图片描述

下面是python2020年省赛题目,因为是第一届,还赶上庚子鼠年,纯纯赢麻了呀。

A:门牌制作

在这里插入图片描述

ans=0 for i in range(1,2021): ans+=str(i).count('2') print(ans)

秒杀题,秒杀题

B:寻找2020

在这里插入图片描述

比较经典的DFS,注意别超界,逐个方向判断就行

import os import sys N=300 data=[list(input()) for _ in range(N)] row=len(data) col=len(data[0]) res=0 for i in range(row): for j in range(col): if data[i][j]=='2': if j在这里插入图片描述

官方文件看一眼,明天就得用了嘻嘻

D:蛇形填数

在这里插入图片描述

我记得这个是有规律的,拿笔推一推,借张网图吧

在这里插入图片描述

ans=1 for i in range(1,20): ans+=i*4 print(ans)E:排序

在这里插入图片描述

这个要找特殊情况 考虑冒泡排序的复杂度,N个字母最多需要交换N(N-1)/2次(完全乱序时) 易知N=15时,有1514/2=105,即满足100次交换所需的最短字符串有15个字母。 要求字典序最小,那么就取a~o这15个字典序最小的字母 逆向思考,目标字符串经过100次交换后,得到正序字符串abcdefghijklmno,而完全逆序的字符串onmlkjihgfedcba变成正序字符串需要105次交换,那么将完全逆序的字符串交换5次后,便能得到答案。因要求字典序最小,那么将j交换5次提到字符串最前面,就得到了最小的情况

F:成绩统计

在这里插入图片描述在这里插入图片描述

白给的

n=int(input()) jg=0 yx=0 for i in range(n): t=int(input()) if t>=60: jg+=1 if t>=85: yx+=1 print(round(jg/n*100),end="%") print() print(round(yx/n*100),end="%")G:单词分析

在这里插入图片描述

s=input() num=0 c=' ' for i in s: if s.count(i)>num: num=s.count(i) c=i print(c) print(num)

别想太复杂,主打一个count

H:数字三角形

在这里插入图片描述

DP,有三个方向,最左边:左下角只能给右上角,最后边:右下角只能给左上角,中间就正常,输出时要遵循题目要求,方向偏移不能超出1,奇数行就是中间那个,偶数行是中间两者的比较

n=int(input()) arr=[list(map(int,input().split())) for _ in range(n)] for i in range(1,n): for j in range(i+1): if j==0: arr[i][j]+=arr[i-1][j] elif j==i: arr[i][j]+=arr[i-1][j-1] else: arr[i][j]+=max(arr[i-1][j-1],arr[i-1][j]) else: if n%2==0: print(max(arr[i][n//2-1],arr[i][n//2]) else: print(arr[i][n//2])I:平面切分

在这里插入图片描述

这题大家先仔细想想,一开始是一个平面,+一个直线就变成了两个,再加个直线就有两种情况 一个是它和第一条相交一个交点,把现在的两个平面分成了4个;另一个是他和第一条重叠或平行,总数+1 所以随便添加一个直线,最少添加一个,变量就是它和其他直线的交点数

n=eval(input()) line=[tuple(map(int,input().split(" "))) for i in range(n)]#用元组收集(k,b) s=set(line)#去除重复的直线 line=list(s) if line: ans=2#如果有直线,那么至少两个平面 for i in range(1,len(line)): a1,b1=line[i] pos=set()#交点集合 for j in range(i):#取出当前直线前面的直线斜率进行比较 a2,b2=line[j] if a1==a2:#平行或重合 continue x=(b1-b2)/(a1-a2) y=a1*x+b1 pos.add((x,y))#收集交点 ans+=len(pos)+1#交点数+1 print(ans)J:装宝珠

这题咱就不看了

结语

呼~ 最后一套也刷完了,一身轻松,今晚睡个好觉,明天提前半小时去考场测试机器。 答应大家的思维导图还没做完,内容我在回忆之前的博客,可能要一段时间,我先放个大体结构在这里,想看的小伙伴可以评论区留言,制作完成后发给大家。

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3